In conventional database systems, users access their data resources in one logical database. A user of such a conventional system typically retrieves data from and stores data on the system using the user's own systems. A user system might remotely access one of a plurality of server systems that might in turn access the database system. Data retrieval from the system might include the issuance of a query from the user system to the database system. The database system might process the request for information received in the query and send to the user system information relevant to the request. The secure and efficient retrieval of accurate information and subsequent delivery of this information to the user system has been and continues to be a goal of administrators of database systems. Unfortunately, conventional database approaches are associated with various limitations.
One reason to retrieve data from a database is to expose the data to analytical tools. This allows the quality of the data and the structure of the database to be analyzed and quantified. The user may then make corrections and adjustments to improve the data quality and the quality and usability of the database. Rather than analyze all of the stored data, some analytical tools provide better results if some portion of the data is retrieved and analyzed. To retrieve a portion of the data, the user must make selections as to which data to retrieve.
When selecting data to retrieve, conventional data storage repository systems require the user to manually find and specify the relationship fields between two objects to join those objects through a tree chart. Various objects, their children, parents, etc. are picked by traversing through the hierarchy. Their relationships are not represented in-line. Relationship selection happens on a separate interface after selecting the objects for extraction. A SQL (Structured Query Language) query must typically be written with only minimal visual builder tools. Users are unable to see the end data format of the extract. The data extraction definition uses metadata to define the extraction for relational systems and presents the definition in a graph format.
When retrieving data, conventional data storage repository systems traverse an object-relationship graph once and turn each graph node into a sequential list of steps to take without considering the results that may be reused from steps in other branches or nodes of the graph, some of which may even occur after. The steps for data extraction are then executed in the order in which they occur in the graph.
Conventional data storage repository systems use a data extraction definition to support searching and extracting data from the repository system. The data extraction definition uses metadata to define the extraction for relational systems and presents the definition in a graph format.
The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches.